
package imp.clases;


import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.io.Serializable;
import java.text.SimpleDateFormat;

import java.util.ArrayList;
import java.util.Date;

public class Emprendimiento implements Serializable {

	private int codigo;
	private String ruc;
	private String nombre;
	private String direccion;
	private String telefono;
	private String email;
	private String objetivo;
	private String descripcion;
	private double inversion_inicial;
	private double aporte_propio;
	private double monto_financiar;
	private Date fecha;
	private String concepto;
	private String estra_negocio;
	private String estra_sostenibilidad;
        private String estra_financiamiento;
	private Date fecha_actualizacion;
	private String estado;

        //Atributos para Registro del FODA
        private Date fechaFoda;
        private String mision;
        private String vision;
        private String valores;
        private String principios;
        private String fortalezas;
        private String debilidades;
        private String amenazas;
        private String oportunidades;
        private String competidorestrategico;
        private String sustitutos;
        private String potenciales;
        private String clientes;
        private String proveedores;


        //Atributos para el Financiamiento

        private double inflacion;
        private double iess;
        private double sueldoBasico;
        private double tasa;
        private double arriendo;
        private double suministros;
        private double basicos;
        private double generales;
        private double legales;
        private double patentes;

	private CentroEmprendimiento centroemprendimiento;
        private CronogramaActividades cronogramaactividades;
        private PlanIngresos planingresos;
        private CostoOperacion costooperacion;
       
        private Presupuesto presupuesto;
        private Habilidad habilidad;
        private Estudio estudio;
        private Usuario usuario;
        private String vent_competitiva;
        private String estructura_legal;
	private int anio_inicio;
        private int mes_inicio;
        private TipoEmpresa tipoempresa;
        private Curso curso;

        private List<IngresoMensual> ingresosmensuales;
	private List<Persona> personas; 
	private List<Problema> problemas;
	private List<ProductoServicio> productoservicios;
	private List<Competidor> competidores;
	private List<FuenteFinanciamiento> fuentefinanciamientos;
	private List<Riesgo> riesgos;
	private List<Indicadores> indicadores;
	private List<Experiencia> experiencias;
        private List<Presupuesto> presupuestos;
        private List<CostoOperacion> costosOperacion;
        private List<Cargo> cargos;
        private List<ActividadMensual> actividadMensual;
        private List<Valoracion> valoraciones;
        private List<Objetivo> objetivos;

        private List<Costo> costos;
        private List<Sueldo> sueldos;

        private List<Observacion> observaciones;
        private List<ReporteFinanciero> reporteFinancieros;
	
	
	public Emprendimiento(){
		
		this.codigo=-1;
                this.competidores = new ArrayList<Competidor>();
                this.personas = new ArrayList<Persona>();
                this.presupuestos = new ArrayList<Presupuesto>();
                this.costosOperacion = new ArrayList<CostoOperacion>();
                this.fuentefinanciamientos = new ArrayList<FuenteFinanciamiento>();
                this.actividadMensual = new ArrayList<ActividadMensual>();
                this.ingresosmensuales = new ArrayList<IngresoMensual>();
                this.productoservicios = new ArrayList<ProductoServicio>();
                this.valoraciones = new ArrayList<Valoracion>();
                this.indicadores = new ArrayList<Indicadores>();
                this.cargos = new ArrayList<Cargo>();
                this.problemas = new ArrayList<Problema>();
                this.riesgos = new ArrayList<Riesgo>();
                this.objetivos=new ArrayList<Objetivo>();
                this.costos=new ArrayList<Costo>();
                this.sueldos=new ArrayList<Sueldo>();
                this.observaciones=new ArrayList<Observacion>();
                this.reporteFinancieros=new ArrayList<ReporteFinanciero>();

                this.tipoempresa=new TipoEmpresa();
                this.curso=new Curso();
                Date fechaActual=new Date();
                SimpleDateFormat simpleDateformat=new SimpleDateFormat("yyyy");

                String anio = simpleDateformat.format(fechaActual);
                this.anio_inicio=2010;
                SimpleDateFormat meses=new SimpleDateFormat("mm");
                this.mes_inicio=8;
                
	}

    public List<ActividadMensual> getActividadMensual() {
        return actividadMensual;
    }

    public void setActividadMensual(List<ActividadMensual> actividadMensual) {
        this.actividadMensual = actividadMensual;
    }

    public void addActividadMensual(ActividadMensual actividadmensual){
        this.actividadMensual.add(actividadmensual);
        actividadmensual.setEmprendimiento(this);
    }

    public void removeActividadMensual(ActividadMensual actividadmensual){
        actividadmensual.setEmprendimiento(null);
        this.actividadMensual.remove(actividadmensual);
    }

    public Usuario getUsuario() {
        return usuario;
    }

    public void setUsuario(Usuario usuario) {
        this.usuario = usuario;
    }
	
	
	public int getCodigo() {
		return codigo;
	}
	public void setCodigo(int codigo) {
		this.codigo = codigo;
	}
	public String getRuc() {
		return ruc;
	}
	public void setRuc(String ruc) {
		this.ruc = ruc;
	}
	public String getNombre() {
		return nombre;
	}
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
	public String getDireccion() {
		return direccion;
	}
	public void setDireccion(String direccion) {
		this.direccion = direccion;
	}
	public String getTelefono() {
		return telefono;
	}
	public void setTelefono(String telefono) {
		this.telefono = telefono;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public String getObjetivo() {
		return objetivo;
	}
	public void setObjetivo(String objetivo) {
		this.objetivo = objetivo;
	}
	public String getDescripcion() {
		return descripcion;
	}
	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}
	public double getInversion_inicial() {
		return inversion_inicial;
	}
	public void setInversion_inicial(double inversionInicial) {
		inversion_inicial = inversionInicial;
	}
	public double getAporte_propio() {
		return aporte_propio;
	}
	public void setAporte_propio(double aportePropio) {
		aporte_propio = aportePropio;
	}
	public double getMonto_financiar() {
		return monto_financiar;
	}
	public void setMonto_financiar(double montoFinanciar) {
		monto_financiar = montoFinanciar;
	}

        public Date getFecha(){
            return fecha;
        }

        public void setFecha(Date fecha){
            this.fecha=fecha;
        }
        public String getConcepto() {
		return concepto;
	}
	public void setConcepto(String concepto) {
		this.concepto = concepto;
	}
	public String getEstra_negocio() {
		return estra_negocio;
	}
	public void setEstra_negocio(String estraNegocio) {
		estra_negocio = estraNegocio;
	}
	public String getEstra_sostenibilidad() {
		return estra_sostenibilidad;
	}
	public void setEstra_sostenibilidad(String estraSostenibilidad) {
		estra_sostenibilidad = estraSostenibilidad;
	}
	public Date getFecha_actualizacion() {
		return fecha_actualizacion;
	}
	public void setFecha_actualizacion(Date fechaActualizacion) {
		fecha_actualizacion = fechaActualizacion;
	}
	public String getEstado() {
		return estado;
	}
	public void setEstado(String estado) {
		this.estado = estado;
	}
	
	public CentroEmprendimiento getCentroemprendimiento() {
		return centroemprendimiento;
	}
	public void setCentroemprendimiento(CentroEmprendimiento centroemprendimiento) {
		this.centroemprendimiento = centroemprendimiento;
	}
	
	public CronogramaActividades getCronogramaactividades() {
		return cronogramaactividades;
	}
	public void setCronogramaactividades(CronogramaActividades cronogramaactividades) {
		this.cronogramaactividades = cronogramaactividades;
	}
	
	public PlanIngresos getPlaningresos() {
		return planingresos;
	}
	public void setPlaningresos(PlanIngresos planingresos) {
		this.planingresos = planingresos;
	}
	
	public CostoOperacion getCostooperacion() {
		return costooperacion;
	}
	public void setCostooperacion(CostoOperacion costooperacion) {
		this.costooperacion = costooperacion;
	}

        public void addCostoOperacion(CostoOperacion costoOperacion){
            costosOperacion.add(costoOperacion);
            costoOperacion.setEmprendimiento(this);
        }
        public void removeCostoOperacion(CostoOperacion costoOperacion){
            costoOperacion.setEmprendimiento(null);
            costosOperacion.remove(costoOperacion);
        }

        public List<Valoracion> getValoraciones() {
            return valoraciones;
        }

        public void setValoraciones(List<Valoracion> valoraciones) {
            this.valoraciones = valoraciones;
        }

        public void addValoracion(Valoracion v){
		this.valoraciones.add(v);
		v.setEmprendimiento(this);

	}

	public void removeValoracion(Valoracion v){
                v.setEmprendimiento(null);
		this.valoraciones.remove(v);

	}

	public Presupuesto getPresupuesto(){
		return presupuesto;
	}
	public void setPresupuesto(Presupuesto p){
		this.presupuesto=p;
	}
	
	public void setHabilidad(Habilidad h){
		this.habilidad=h;
	}
	public Habilidad getHabilidad(){
		return habilidad;
	}
	
	public void setEstudio(Estudio e){
		this.estudio=e;
	}
	public Estudio getEstudio(){
		return estudio;
	}

        public TipoEmpresa getTipoempresa() {
            return tipoempresa;
        }

        public void setTipoempresa(TipoEmpresa tipoempresa) {
            this.tipoempresa = tipoempresa;
        }

        public Curso getCurso() {
            return curso;
        }

        public void setCurso(Curso curso) {
            this.curso = curso;
        }

	
	public void setPersonas(List<Persona> personas){
		this.personas=personas;
	}
	public List<Persona> getPersonas(){
		return personas;
	}
	public void addPersona(Persona p){
		personas.add(p);
		p.setEmprendimiento(this);
	}

        public void removePersona(Persona p){
		this.getPersonas().remove(p);
	}


	
	public void setProblemas(List<Problema> problemas){
		this.problemas=problemas;
	}
	public List<Problema> getProblemas(){
		return problemas;
	}
	public void addProblema(Problema p){
		problemas.add(p);
		p.setEmprendimiento(this);
	}
	public void removeProblema(Problema p){
		this.getProblemas().remove(p);
	}
	
	public void setProductoservicios(List<ProductoServicio> productoservicios){
		this.productoservicios=productoservicios;
	}
	
	public List<ProductoServicio> getProductoservicios(){
		return productoservicios;
	}
	public void addProductoservicio(ProductoServicio p){
		productoservicios.add(p);
		p.setEmprendimiento(this);
	}
	public void removeProductoservicio(ProductoServicio p){
		this.getProductoservicios().remove(p);
	}
	
	
	public void setCompetidores(List<Competidor> competidores){
		this.competidores=competidores;
	}
	
	public List<Competidor> getCompetidores(){
		return competidores;
	}
	public void addCompetidor(Competidor c){
		competidores.add(c);
		c.setEmprendimiento(this);
	}
	public void removeCompetidor(Competidor c){
		this.getCompetidores().remove(c);
	}
        public void removeProductoServicio(ProductoServicio c){
		this.getProductoservicios().remove(c);
	}
	
	
	public void setFuentefinanciamientos(List<FuenteFinanciamiento> fuentefinanciamientos){
		this.fuentefinanciamientos=fuentefinanciamientos;
	}
	
	public List<FuenteFinanciamiento> getFuentefinanciamientos(){
		return fuentefinanciamientos;
	}
	public void addFuentefinanciamiento(FuenteFinanciamiento c){
		fuentefinanciamientos.add(c);
		c.setEmprendimiento(this);
	}
	public void removeFuentefinanciamiento(FuenteFinanciamiento c){
                c.setEmprendimiento(null);
		this.getFuentefinanciamientos().remove(c);
	}
	
	
	public void setRiesgos(List<Riesgo> riesgos){
		this.riesgos=riesgos;
	}
	
	public List<Riesgo> getRiesgos(){
		return riesgos;
	}
	public void addRiesgo(Riesgo r){
		riesgos.add(r);
		r.setEmprendimiento(this);
	}
	public void removeRiesgo(Riesgo r){
		this.getRiesgos().remove(r);
	}
	
	
	public void setIndicadores(List<Indicadores> Indicadoresset){
		this.indicadores=Indicadoresset;
	}


	
	public List<Indicadores> getIndicadores(){
		return indicadores;
	}
	public void addIndicador(Indicadores r){
		indicadores.add(r);
		r.setEmprendimiento(this);
	}
	public void removeIndicador(Indicadores r){
                r.setEmprendimiento(null);
		indicadores.remove(r);
	}
	
	
	public void setExperiencias(List<Experiencia> experiencias){
		this.experiencias=experiencias;
	}
	
	public List<Experiencia> getExperiencias(){
		return experiencias;
	}
	
	public void removeExperiencia(Experiencia r){
		this.getExperiencias().remove(r);
	}

        public List<Objetivo> getObjetivos() {
            return objetivos;
        }

        public void setObjetivos(List<Objetivo> objetivos) {
            this.objetivos = objetivos;
        }

        public void addObjetivo(Objetivo o){
            objetivos.add(o);
            o.setEmprendimiento(this);

        }
        public void removeObjetivo(Objetivo o){
            o.setEmprendimiento(null);
            objetivos.remove(o);


        }





        public String getEstra_financiamiento() {
            return estra_financiamiento;
        }

        public void setEstra_financiamiento(String estra_financiamiento) {
            this.estra_financiamiento = estra_financiamiento;
        }
	
	
	
	
	public String toString() {
	    return "(" + codigo + "," + nombre + "," + estado + "," + fecha + ")";
	}

    public int getAnio_inicio() {
        return anio_inicio;
    }

    public List<Cargo> getCargos() {
        return cargos;
    }

    public List<CostoOperacion> getCostosOperacion() {
        return costosOperacion;
    }

    public String getEstructura_legal() {
        return estructura_legal;
    }

    
    public int getMes_inicio() {
        return mes_inicio;
    }
    
    public String getVent_competitiva() {
        return vent_competitiva;
    }

    public void setAnio_inicio(int anio_inicio) {
        this.anio_inicio = anio_inicio;
    }

    public void setCargos(List<Cargo> cargos) {
        this.cargos = cargos;
    }

    public void addCargo(Cargo cargo){
        this.cargos.add(cargo);
        cargo.setEmprendimiento(this);

    }

    public void removeCargo(Cargo cargo){
        cargo.setEmprendimiento(null);
        this.cargos.remove(cargo);

    }

    public void setCostosOperacion(List<CostoOperacion> costosOperacion) {
        this.costosOperacion = costosOperacion;
    }

    public void setEstructura_legal(String estructura_legal) {
        this.estructura_legal = estructura_legal;
    }

    public void setIngresosmensuales(List<IngresoMensual> ingresosmensuales) {
        this.ingresosmensuales = ingresosmensuales;
    }

    public List<IngresoMensual> getIngresosmensuales() {
        return ingresosmensuales;
    }

    public void addIngreso(IngresoMensual i){
	this.ingresosmensuales.add(i);
	i.setEmprendimiento(this);
    }

    public void removeIngreso(IngresoMensual i){
        i.setEmprendimiento(null);
	this.ingresosmensuales.remove(i);

    }

    public List<Costo> getCostos() {
        return costos;
    }

    public void setCostos(List<Costo> costos) {
        this.costos = costos;
    }

    public void addCosto(Costo c){
        costos.add(c);
        c.setEmprendimiento(this);

    }

    public void removeCosto(Costo c){
        c.setEmprendimiento(null);
        costos.remove(c);
    }


    public List<Sueldo> getSueldos() {
        return sueldos;
    }

    public void setSueldos(List<Sueldo> sueldos) {
        this.sueldos = sueldos;
    }

    public void addSueldo(Sueldo s){
        sueldos.add(s);
        s.setEmprendimiento(this);

    }

    public void removeSueldo(Sueldo s){
        s.setEmprendimiento(null);
        sueldos.remove(s);
    }

    public List<Observacion> getObservaciones() {
        return observaciones;
    }

    public void setObservaciones(List<Observacion> observaciones) {
        this.observaciones = observaciones;
    }

    public void addObservacion(Observacion o){
        this.observaciones.add(o);
        o.setEmprendimiento(this);

    }

    public void removeObservacion(Observacion o){
        o.setEmprendimiento(null);
        this.observaciones.remove(o);


    }
    public void newReporteFinancieros(){
     this.reporteFinancieros=new ArrayList<ReporteFinanciero>();
    }

    public List<ReporteFinanciero> getReporteFinancieros() {
        return reporteFinancieros;
    }

    public void setReporteFinancieros(List<ReporteFinanciero> reporteFinancieros) {
        this.reporteFinancieros = reporteFinancieros;
    }

    public void addReporteFinanciero(ReporteFinanciero reporteFinanciero){
       this.reporteFinancieros.add(reporteFinanciero);
       reporteFinanciero.setEmprendimiento(this);
    }
    public void removeReporteFinanciero(ReporteFinanciero reporteFinanciero){
    this.reporteFinancieros.remove(reporteFinanciero);
    }


    public void setMes_inicio(int mes_inicio) {
        this.mes_inicio = mes_inicio;
    }

    public void setPresupuestos(List<Presupuesto> presupuestos) {
        this.presupuestos = presupuestos;
    }

    public List<Presupuesto> getPresupuestos() {
        return presupuestos;
    }

    public void addPresupuesto(Presupuesto p){
	presupuestos.add(p);
	p.setEmprendimiento(this);
    }

    public void removePresupuesto(Presupuesto p){
        p.setEmprendimiento(null);
	presupuestos.remove(p);

    }


    public void setVent_competitiva(String vent_competitiva) {
        this.vent_competitiva = vent_competitiva;
    }
	
	
        public void removeCanton(Competidor e) {
        this.competidores.remove(e);
        //e.setProvincia(null);
    }

    public String getAmenazas() {
        return amenazas;
    }

    public void setAmenazas(String amenazas) {
        this.amenazas = amenazas;
    }

    public String getDebilidades() {
        return debilidades;
    }

    public void setDebilidades(String debilidades) {
        this.debilidades = debilidades;
    }

    public Date getFechaFoda() {
        return fechaFoda;
    }

    public void setFechaFoda(Date fechaFoda) {
        this.fechaFoda = fechaFoda;
    }

    public String getFortalezas() {
        return fortalezas;
    }

    public void setFortalezas(String fortalezas) {
        this.fortalezas = fortalezas;
    }

    public String getOportunidades() {
        return oportunidades;
    }

    public void setOportunidades(String oportunidades) {
        this.oportunidades = oportunidades;
    }

    public String getClientes() {
        return clientes;
    }

    public void setClientes(String clientes) {
        this.clientes = clientes;
    }

    public String getCompetidorestrategico() {
        return competidorestrategico;
    }

    public void setCompetidorestrategico(String competidorestrategico) {
        this.competidorestrategico = competidorestrategico;
    }

    public String getMision() {
        return mision;
    }

    public void setMision(String mision) {
        this.mision = mision;
    }

    public String getPotenciales() {
        return potenciales;
    }

    public void setPotenciales(String potenciales) {
        this.potenciales = potenciales;
    }

    public String getPrincipios() {
        return principios;
    }

    public void setPrincipios(String principios) {
        this.principios = principios;
    }

    public String getProveedores() {
        return proveedores;
    }

    public void setProveedores(String proveedores) {
        this.proveedores = proveedores;
    }

    public String getSustitutos() {
        return sustitutos;
    }

    public void setSustitutos(String sustitutos) {
        this.sustitutos = sustitutos;
    }

    public String getValores() {
        return valores;
    }

    public void setValores(String valores) {
        this.valores = valores;
    }

    public String getVision() {
        return vision;
    }

    public void setVision(String vision) {
        this.vision = vision;
    }

    public double getArriendo() {
        return arriendo;
    }

    public void setArriendo(double arriendo) {
        this.arriendo = arriendo;
    }

    public double getBasicos() {
        return basicos;
    }

    public void setBasicos(double basicos) {
        this.basicos = basicos;
    }

    public double getGenerales() {
        return generales;
    }

    public void setGenerales(double generales) {
        this.generales = generales;
    }

    public double getIess() {
        return iess;
    }

    public void setIess(double iess) {
        this.iess = iess;
    }

    public double getInflacion() {
        return inflacion;
    }

    public void setInflacion(double inflacion) {
        this.inflacion = inflacion;
    }

    public double getLegales() {
        return legales;
    }

    public void setLegales(double legales) {
        this.legales = legales;
    }

    public double getPatentes() {
        return patentes;
    }

    public void setPatentes(double patentes) {
        this.patentes = patentes;
    }

    public double getSueldobasico() {
        return sueldoBasico;
    }

    public void setSueldobasico(double sueldoBasico) {
        this.sueldoBasico = sueldoBasico;
    }

    public double getSuministros() {
        return suministros;
    }

    public void setSuministros(double suministros) {
        this.suministros = suministros;
    }

    public double getTasa() {
        return tasa;
    }

    public void setTasa(double tasa) {
        this.tasa = tasa;
    }

    


    

	
}
